Industry increasingly depends upon highly automated data acquisition and control systems to ensure that industrial processes/operations run efficiently, safely and reliably while lowering overall costs. In such systems, data acquisition begins with sensors measuring current values/status of process variables representing the status/operation of an industrial process or operation. The measurements are communicated to programmed controllers and data collection/management systems. The data collection/management systems, generally including process databases and data processing routines, manage and maintain the measurement data. Such data management and maintenance includes further processing the data (e.g., filtering), storing the data, and distributing the data to a variety of client applications. Such client applications include both automated and manual supervisory control processes and display/monitor user interfaces.
Industrial process/operation measurements come in a wide variety of forms and are used by industrial process control systems to regulate a variety of operations, both with respect to continuous and discrete manufacturing processes. By way of example the measurements produced by a sensor/recorder include: a temperature, a pressure, a pH, a mass/volume flow of material, a quantity of bottles filled per hour, a tallied inventory of packages waiting in a shipping line, or a photograph of a room in a factory. Often, sophisticated automated process management and control hardware/software examine acquired process/operation measurement data, and respond by sending messages/signals to actuators/controllers that adjust the operation of at least a portion of the industrial process. The control software comprises, for example, one or more control strategies that, in turn, include a set of control blocks. The control programs potentially operate at a variety of levels of control including, for example, regulatory control (e.g., maintaining a particular specified set point for a process variable) and supervisory control (e.g., specifying a set point for a controlled process variable).
Automated control systems for typical industrial processes are often complex. Developing customized control programs for such automated control systems is, of course, a complex and time-consuming task. However, today control system programming is streamlined and simplified by graphical user interface-based control program development environments/toolkits that allow creation of control programs by dragging and dropping, and thereafter connecting, graphical representations of pre-programmed components/elements of a control program. Such graphical representations are associated with control software objects (or more specifically control software object templates) that, when instantiated and deployed on a control software object execution platform, carry out particular defined operations/functions in an overall control environment.
Programming automated control of processes using graphical editors and sets of selectable, pre-programmed, object templates is a substantial improvement over programming control using written instructions. The graphical user interface-based control program environment has substantially eliminated the need for control engineers to develop control programs using low-level instruction code, or even higher level compiled source code languages. Instead, developers of control programs invoke graphical control program editors having associated pre-programmed control objects represented by symbols provided in a control template pallet. Thus, instead of learning to program control using written instructions/code, programmers need only become knowledgeable with regard to various tasks/functions carried out by control objects instantiated from selectable control object templates.
Known graphical control program editors support an extensible set of control object templates. The new control object templates include new control elements with new attributes/functionality not found in existing control object template sets/pallets. In some instances the new control object templates are derived from existing templates. In other instances, the new control object templates comprise a set of connected, pre-existing, control object templates.
The template-based control development toolkit approach to developing automated control programs does not eliminate low-level programming altogether. Instead, such toolkits facilitate efficient/widespread exploitation, by many, of original, programming efforts of a relatively small number of skilled low-level programmers who develop the original control object templates. Such exploitation occurs in the form of deriving child templates from a base class of original templates, and creating object instances from the original and derived templates.